length-inversion length-pattern &optional value how
This function inverts a note-length into a rest length.
(setq rhy '(1/16 -1/16 1/8 1/4))
(setq rhyi (length-inversion rhy))
--> (-1/16 1/16 -1/8 -1/4)
If the optional value and how paremeters are supplied, this function inverts note-lengths around a set <value>. This results in a unique variant to any note-length list. It can then be 'scaled' to produce a chain of variants using different inversion values.
(setq rhy '(1/4 1/16 1/8 1/16))
(setq var1 (length-inversion rhy '1/4 :minus))
--> (-1/4 3/16 1/8 3/16)
(setq var2 (length-inversion rhy '1/8 :minus))
--> (-1/8 1/16 -1/8 1/16)
(setq var3 (length-inversion rhy '1/16 :plus))
--> (-3/16 1/16 -1/16 1/16)
The <how> parameter offers alternative ways of dealing with the interpretation of the <value> when this appears in the note-length pattern.
The use of larger lengths for <value> than are present in the pattern has the result of producing interesting distortions.